/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.hogent.iii.project.server.berichthandlers;

import be.hogent.iii.project.common.bericht.Bericht;
import be.hogent.iii.project.common.bericht.SpelWijzigingBericht;
import be.hogent.iii.project.common.bericht.SpelenLijstBericht;
import be.hogent.iii.project.common.gameroom.objecten.GameRoomData;
import be.hogent.iii.project.server.netwerk.Server;
import com.thoughtworks.xstream.XStream;

/**
 *
 * @author Caribou
 */
public class ServerSpelWijzigingBerichtHandler implements BerichtHandler {

    public ServerSpelWijzigingBerichtHandler() {
    }

    public void handle(Bericht bericht) {
        System.out.println("De handle methode van de ServerSpelWijzigingBerichtHandler");
        SpelWijzigingBericht spelWijziging = SpelWijzigingBericht.class.cast(bericht);
        int i = 0;
        if (GameRoomData.getGameRoomData().getSpelenlijst() != null) {
            while (i < GameRoomData.getGameRoomData().getSpelenlijst().getSpelenlijst().size()) {
                if (GameRoomData.getGameRoomData().getSpelenlijst().getSpelenlijst().get(i).getId().equals(spelWijziging.getSpel().getId())) {
                    System.out.println("Er wordt een wijziging gedaan, niet enkel toevoegen. ");
                    GameRoomData.getGameRoomData().getSpelenlijst().getSpelenlijst().remove(i);
                }
                i++;
            }
        }
        System.out.println("###SPEL: " + spelWijziging.getSpel().getNaam() + " ###");
        System.out.println("Het spel heeft " + spelWijziging.getSpel().getDeelnemers().size() + " aantal deelnemers. ");
        for (i = 0; i < spelWijziging.getSpel().getDeelnemers().size(); i++) {
            System.out.println("Speler " + i + ": " + spelWijziging.getSpel().getDeelnemers().get(i).getNick());
        }
        System.out.println("###SPEL: " + spelWijziging.getSpel().getNaam() + " ###");
        GameRoomData.getGameRoomData().getSpelenlijst().getSpelenlijst().add(spelWijziging.getSpel());

        SpelenLijstBericht antwoord = new SpelenLijstBericht(GameRoomData.getGameRoomData().getSpelenlijst());
        XStream xStream = new XStream();
        Server.getServer().stuurBerichtNaarPool("mainChat", xStream.toXML(antwoord));
    }
}
